VIBES implementation
Fast Blockchain Simulations for Large-scale Peer-to-Peer Networks
https://gyazo.com/0b296b54d7f533ae777966a97a62114c
https://gyazo.com/32bfd2683c55f978b770cb0ceb55ccb1
frontend
backend
actions
actors
models
utils
MasterActor & MasterActions:
MasterActor grants permission to nodes to work on a work request to control the execution order.
work request is a piece of computational unit, e.g. mining a block.
MasterActor grants permission to fast forward work request by future timestamp.
DiscoveryActor & DiscoveryActions:
The DiscoveryActor is responsible for assigning and updating the neighbors of nodes.
NodeActor & NodeActions:
The NodeActor is the equivalent to a miner in the bitcoin network, interacts with other nodes, blocks, and transactions. The NodeActor is also responsible for the generation of the best guess of a work request. The best guess is, for example, the time in the future when a node wants to mine a block.
NodeRepoActor & NodeRepoActions:
The NodeRepoActor helps the MasterActor, is the repository for all nodes, starts and ends the simulation.
ReducerActor & ReducerActions:
The ReducerActor is called after the simulation to calculate, summarize and prepare the simulation results for the transfer to the user interface.
Attacks
alternative history attack
splitting up the nodes and having two separate blockchains running at the same time and after the double- spending attack, the two networks are merging back together to work on one blockchain
In case of an active alternative history attack the nodes only accept blocks by
miners of the same honesty attribute type. The status of the attack is checked and if the
attack is finished, the neighbours are updated to allow neighbours of a different honesty type.